//
//  Cocoa_PDB_Parser.h
//  Cocoa PDB Parser
//
//  Created by Bertrand Caron on 05/11/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "RESIDUE.h"
#import "ATOM.h"
#import "FRAME.h"
#import "DDFileReader.h"
#import "FrameCollection.h"
#import "NSStringArray.h"
#import "NSMutableArray+NSStringMutableArray.h"

#import <Foundation/Foundation.h>
@interface Cocoa_PDB_Parser : NSObject


//--------- PROPERTIES -----------//

//NSString's
@property  NSString* pathToPDBFileList;
@property  NSString* pathToPDBFile;
@property  NSMutableString* log;
@property NSString* stringPredicate;

//@property DecomposedPDBLinesHolder* holder;
@property NSMutableArray* residuePopulationArrayRawData;
@property NSMutableArray* residuePopulationArrayParsedData;
@property NSMutableArray* PDBPathsPredicateArray; //enlever fichiers nuls
@property NSMutableArray* PDBLinesPredicateArray;

//BOOL Flags
@property BOOL doPrintResDescription;

//Floats and Ints
@property int numRes;



//--------- METHODS -----------//


-(id)init;


//Parsing PDB and PDB Lists
-(FRAME*) parsePDBAtPath:(NSString*)aPDBPath;
-(FrameCollection*) parsePDBFileList:(NSString*) aPDBPathList;


//Debug Options
-(void)setVerbosityFlags;
+(void) writeToOutputFile:(NSString*) toBeWritten: (NSString*) Path;



//Crafting -Casting Methods
-(RESIDUE*) createResidueWithTempResidueArray:(NSMutableArray*) tempResidueArray;


//Printing Methods
-(void) printStringArray:(NSMutableArray*) anArray withOption:(BOOL) forcedStringed;


//Others
+(void) initLogFileAtPath;

-(void)initResiduePopulationArrayWithResNumberArrays:(int) aNumRes;
void QuietLog (NSString *format, ...);


@end

